const crypto = require("crypto");
const _ = require("lodash");
const fs = require("fs");
const path = require("path");
module.exports = {
  _,
  md5(str) {
    return crypto.createHash("md5").update(str).digest("hex").substring(8, 24);
  },
  deleteFolderRecursive(folderPath) {
    //判断文件夹是否存在
    if (fs.existsSync(folderPath)) {
      //读取文件夹下的文件目录，以数组形式输出
      fs.readdirSync(folderPath).forEach(file => {
        //拼接路径
        const curPath = path.join(folderPath, file);
        //判断是不是文件夹，如果是，继续递归
        if (fs.lstatSync(curPath).isDirectory()) {
          deleteFolderRecursive(curPath);
        } else {
          //删除文件或文件夹
          fs.unlinkSync(curPath);
        }
      });
      //仅可用于删除空目录
      fs.rmdirSync(folderPath);
    }
  },

  shuffleArray(array) {
    for (let i = array.length - 1; i > 0; i--) {
      const j = Math.floor(Math.random() * (i + 1)); // 生成随机索引
      [array[i], array[j]] = [array[j], array[i]]; // 交换元素位置
    }
  },
};
